
`timescale 1ns / 1ns
module AsyncReceiverTest   ; 

  wire  oRxEop   ; 
  wire  oRxReady   ; 
  wire  oRxIdle   ; 
  wire  [7:0]  oRxData   ; 
  reg   iRx   ; 
  reg   iClk   ; 
  AsyncReceiver  DUT  ( 
      .oRxEop (oRxEop ) ,
      .oRxReady (oRxReady ) ,
      .oRxIdle (oRxIdle ) ,
      .oRxData (oRxData ) ,
      .iRx (iRx ) ,
      .iClk (iClk ) ); 



// "Clock Pattern" : dutyCycle = 50
// Start Time = 0 ns, End Time = 150 us, Period = 20 ns
  initial
  begin
	iClk  = 1'b0  ;
	repeat(7500) begin
	  # 10	  iClk  = 1'b1  ;
	  # 10	  iClk  = 1'b0  ;
	end
  end


// "Clock Pattern" : dutyCycle = 50
// Start Time = 0 ns, End Time = 150 us, Period = 17361 ns
  initial
  begin
	  iRx  = 1'b1  ;
	 # 17361 ;
	  iRx  = 1'b0  ;
	 # 8681 ;
	  iRx  = 1'b1  ;
	 # 8680	  iRx  = 1'b0  ;
	 # 8681	  iRx  = 1'b1  ;
	 # 8680	  iRx  = 1'b0  ;
	 # 8681	  iRx  = 1'b1  ;
	 # 8680	  iRx  = 1'b0  ;
	 # 8681	  iRx  = 1'b1  ;
	 # 8680	  iRx  = 1'b0  ;
	 # 8681	  iRx  = 1'b1  ;
	 # 54514 ;
// dumped values till 150 us
  end

  initial
	#150000 $stop;
endmodule
